Content Feed
Overview
This document should be used in tandem with the Content Feed document in our developer documentation. Using the Content Feed is easier than manually adding each piece of content because it automates the process.
When using feeds, it is essential that all the required files are included and that you ensure that all the required pieces of information are included. Feed files are sent to Omnichannel Personalization and then processed to populate the information into the database to power Engage content and recommendations.
Content Feed Files
Type of File |
Suggested Naming Convention |
Description |
---|---|---|
Content |
content_full_sitename_YYYY_MM_DD.txt |
List of content on your site |
Content/Category |
content_in_category_sitename_YYYY_MM_DD.txt |
Assigns content to categories. Content can be assigned to multiple categories. |
Content/Attributes |
content_attribute_sitename_YYYY_MM_DD.txt |
Defines content attributes |
Note: Include in zipped same compressed file defined in the Content Feed document.
File Specification
See below for the specifications for each file.
- The default column names are listed below. To modify, you must work with your Algonomy contacts.
- The delimiter in the file will be a pipe (|) unless another delimiter is required and communicated to your Algonomy contacts.
content_full_sitename.txt (required)
Note: Content cannot have the same IDs as products. Products and content must have unique IDs.
Name |
Type |
Required |
Definition |
---|---|---|---|
id |
text |
Yes |
Must be a unique ID. Note: Forward slashes (/) are not supported in the ContentID field. |
name |
text |
Yes |
The name of the content as it will be displayed in recommendations on site and in the Omnichannel Personalization Dashboard. Max length: 255 characters. If missing, name is not updated if the content is already in the system. |
start_date |
date |
no |
When this content is available to be displayed. If not specified, it's available to be displayed any time |
end_date |
date |
no |
When does this content expire? Once expired we should not display it any longer. If not specified, it is available to be displayed indefinitely. |
rating |
integer |
No |
The rating for this content (specified by client). Usually this is generated by collecting the average of customer ratings/reviews |
tags |
text |
No |
List of strings separated by the delimiter that describe the piece of content (e.g. baby.stroller.graco). (The default de-limiter is the "." symbol) A tag can be no longer than 100 characters long (if it is, we will truncate all characters after the 100th character). While there's no theoretical limit to how many tags a piece of content have, we recommend no more than 20 tags per content. |
content_in_category_sitename.txt (optional)
Name |
Column Header |
Required |
Definition |
---|---|---|---|
Category ID |
category_id |
Yes |
Identifier for the category that the content belongs to as defined in the category file. |
Content ID |
content_id |
Yes |
Identifier for the content as defined in the content's file. Note: Forward slashes (/) are not supported in the ContentID field. |
Note: If you are a Recommend customer, please ensure that the category IDs which are assigned to products are the same IDs used for content.
content_attribute_sitename.txt (required)
Attribute values can be listed in a column-based format or a row-based format. However, the file must be one or the other format. The system automatically detects the format based on the header.
The list must use a delimiter that does not exist in attribute values and should not be a list delimiter used elsewhere in the file. Values that have a period are treated as lists (this is the default behavior). The period delimits each value in the list. However, the list value delimiter may be customized when creating the feed profile.
Content attributes is where you will specify the variables needed to render a content. Things like image URLs and landing page URLs must be passed in as attributes.
We expect each piece of content to have a minimum 1 attribute that allows us to render that piece of content back to the consumer. If a piece of content doesn't have any attributes, then it will not be stored in our system.
Column-based
Name |
Column Header |
Required |
Definition |
---|---|---|---|
Content ID |
content_id |
Yes |
Identifier for the content as defined in the content file Note: Forward slashes (/) are not supported in the ContentID field. |
Attribute Key 1 |
attribute.[attribute key1] |
Yes |
First unique attribute key |
Attribute Key 2
|
attribute.[attribute key 2] |
Yes |
Second distinct attribute key |
Attribute Key N |
attribute.[attribute key N] |
Yes |
Nth distinct attribute (N=number of distinct attribute keys) |
Example
content_id|attribute.color|attribute.size|attribute.image_url
100|blue|medium|http://mysite.com/images/100.jpg
Row-based
Name |
Column Header |
Required |
Definition |
---|---|---|---|
Content Id |
content_id |
Yes |
Identifier for the content as defined in the content file Note: Forward slashes (/) are not supported in the ContentID field. |
Attribute Key |
attr_name |
Yes |
Unique attribute key |
Attribute Value
|
attr_value |
Yes |
Name of the attribute |
Localization type |
localization_value |
Optional |
Region is the only type supported, or -1 for global attributes. |
Localization value |
localization_value |
Optional |
Region Id |
Examples
Row-based Attribute Feed Format (Single Row)
In this format, attributes for a single content entry are passed in a single row. The delimiter can be configurable but should be different from the column delimiter.
content_id|attr_name|attr_value
100|color|red
100|size|s
Row-based Attribute Feed Format (Multiple Rows)
For each attribute, a separate row is used to pass the values. The list value delimiter may be customized when creating the feed profile.
Example of passing multiple attributes in individual rows:
content_id|attr_name|attr_value
100|size|xl
100|color|green
Note: This file may be omitted for sites with minimal attribute requirements.
Global and Regional Attributes
This example includes both global and region-specific attributes. The delimiter can be customized, but it should be different from the column delimiter.
content_id|attr_name|attr_value|localization_type|localization_value
100|color|red||
100|size|s|region|US
100|size|l|region|CA
100|r_recommend|0|region|GB
Attribute ‘size’ with value ‘s’ will be available only for US region.
Attribute ’size’ with value ‘l’ will be available only for CA region.
Attribute ‘color’ is global, applying to all regions.
r_recommend says that the content is not available for GB because it is not recommended.
-
Global Attribute: The color attribute is global, applying to all regions.
-
Region-specific Attribute: The size attribute varies by region ("s" for the US and "l" for Canada).
-
Content Exclusion: The r_recommend attribute indicates that the content is not available for GB because it is not recommended.
Maximum Views on Engage Contents via Feed
The maximum views via Feed manages the maximum number of times the specific content can be displayed to users in Engage. This feed is uploaded separately from the main content feed and includes the following columns:
content_id|total_max_views|reset_max_views
-
content_id (required): Unique identifier for the content.
-
total_max_views (required): The maximum number of views allowed for the content.
-
reset_max_views (optional): Accepts true or false. Defaults to false.
The feed file controls how often the content is displayed, and this feed file can be processed in two ways depending on whether you are updating all content or only specific entries:
-
Full Feed: Include all content that has a max views setting. Leave the reset_max_views column blank or set it to false. Set reset_max_views to true only if you need to reset the max views value or count.
-
Delta Feed: Include only the content where max views are being set for the first time or where a reset is required. Set reset_max_views to true for all such entries.